#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>

int main()
{
    if (fork() == 0)
    {

        int a = 1 / 0;
        exit(1);
    }
    int status = 0;

    waitpid(-1, &status, 0);
    printf("code:%d - core:%d - sig:%d \n",
           (status >> 8) & 0xFF, (status >> 7) & 1, status & 0x7f);
    return 0;
}

// void sighand(int sig)
// {
//     printf("catah a sig:%d \n", sig);
// }

// int main()
// {
//     int signo = 1;
//     for (signo = 1; signo <= 31; signo++)
//     {
//         signal(signo, sighand);
//     }
//     while (1)
//     {
//         sleep(1);
//     }
//     return 0;
// }

// int main()
// {
//     int a = 1 / 0;
//     return 0;
// }